import apis from '../../http/apis'

export default {
  namespaced: true,
  state: {
    ordersData: [],
    searchValue: "",
    oneOrdersData: [],

    outOrdersData:[], //退保的数据
  },
  mutations: {
    setOrdersData(state, ordersData) {
      state.ordersData = ordersData;
    },
    setSearchValue(state, searchValue) {
      state.searchValue = searchValue;
    },

    //  by订单id获取该订单所有信息，正向查询 （包括订单详情,和关联信息，比如;客户，销售，产品）
    setOneOrdersData(state, oneOrdersData) {
      state.oneOrdersData = oneOrdersData;
    },

    //  修改数据
    setOneModifyOrders(state, oneOrdersData) {
      state.oneOrdersData = oneOrdersData;
    },
    //  退保数据
    setOutOrdersData(state, outOrdersData) {
      state.outOrdersData = outOrdersData;
    },

  },
  actions: {
       async addOrders(context,ordersData){

          let {data} = await apis.orders.addOrders(ordersData)
          console.log(data);
          if(data.status){
              alert('新增成功')
          }

        },
    // 获取 和 查询
    async getOrders(context) {
      let { data } = await apis.orders.getOrders({
        searchValue: context.state.searchValue,
      });
      // console.log(data);
      if (data.status) {
        context.commit("setOrdersData", data.data);
      }
      //   在登陆时已经将用户的登陆信息保存在本地
    },

    // by订单id获取该订单所有信息，正向查询
    async getOrdersByOrdersId(context, ordersId) {
      let { data } = await apis.orders.getOrdersByOrdersId(ordersId);
      console.log(data.data);
      if (data.status) {
        context.commit("setOneOrdersData", data.data);
      }
    },

    // 获取 -通过销售Id
    async getOrdersBySaleMenId(context) {
      let saleMenId = localStorage.userInforId; // 在登陆的时候就保存了销售 id
      // console.log(saleMenId);
      // 输入值和 销售id
      let { data } = await apis.orders.getOrdersBySaleMenId({
        searchValue: context.state.searchValue,
        saleMenId,
      });
      // console.log(data);
      if (data.status) {
        context.commit("setOrdersData", data.data); // ？？？
      }
      //   在登陆时已经将用户的登陆信息保存在本地
    },

    // 根据orders  id 删除
    async delOneOrders(context, { _id }) {
      console.log({ _id });
      let { data } = await apis.orders.delOneOrders({ _id });
      // console.log(data);
      if (data.status) {
        alert("删除成功");
      }
    },

    // 修改
    async oneModifyOrders(context,state=4){
      // console.log(state);

      // 当点击申请退保的时候 ， 没有更改状态为1， 当修改的时候默认4，表示未申请保单
      let { data } = await apis.orders.oneModifyOrders({ _id:localStorage.oneOrdersId,...context.state.oneOrdersData[0],outOrdersState:state});
      // console.log(data);
      // if (data.status) {
      //   alert("修改成功");
      // }  
      return data
    },
    // 管理系统修改 审核状态
    async passoutState(context,{_id,outOrdersState}){
      // console.log(state);

      // 当点击申请退保的时候 ， 没有更改状态为1， 当修改的时候默认3，表示未申请保单
      let { data } = await apis.orders.passoutState({ _id,outOrdersState});
      // console.log(data);
      // if (data.status) {
      //   alert("修改成功");
      // }  
      return data
    },
    // 根据状态筛选（销售界面）
    async getOrdersByState(context,state){
      let saleMenId = localStorage.userInforId; // 在登陆的时候就保存了销售 id
      let { data } = await apis.orders.getOrdersByState({ state,saleMenId});
      console.log(data);
      if (data.status) {
        // alert("获取成功");
        context.commit("setOrdersData", data.data); // ？？？

      }  
    },


    // 退保


    // 申请退保，销售申请的数据 放入 outOrders集合中并管理该订单的id
    async applyOutOrders(context,outOrders){
      // let saleMenId = localStorage.userInforId; // 在登陆的时候就保存了销售 id
      let { data } = await apis.orders.applyOutOrders( outOrders);
      // console.log(data);
      if (data.status) {
        alert("申请成功，等待管理员审核");
      }  
    },

      // 获取保单: 通过销售id
    async getOutOrdersBySaleMenId(context) {
      let saleMenId = localStorage.userInforId; // 在登陆的时候就保存了销售 id
      // console.log(saleMenId);
      // 输入值和 销售id
      let { data } = await apis.orders.getOutOrdersBySaleMenId({
        searchValue: context.state.searchValue,
        saleMenId,
      });
      console.log(data);
      if (data.status) {
        context.commit("setOutOrdersData", data.data); // ？？？
      }
      //   在登陆时已经将用户的登陆信息保存在本地
    },
      // 获取所有 退货
    async getOutOrders(context) {
     
      let { data } = await apis.orders.getOutOrders();
    
      if (data.status) {
        context.commit("setOutOrdersData", data.data); // ？？？
      }
      //   在登陆时已经将用户的登陆信息保存在本地
    },

       // 修改
       async modifyOutOrdersState(context,data2){
      //  id和状态码
  
        // 当点击申请退保的时候 ， 没有更改状态为1， 当修改的时候默认3，表示未申请保单
        let { data } = await apis.orders.modifyOutOrdersState({...data2});
        // console.log(data);
        // if (data.status) {
        //   alert("修改成功");
        // }  
        return data
      },


  },
};
